﻿/*----------------------------------------------------------------
// Copyright (C) 2011 苏富特健康科技
// 版权所有。 
//
// 文件名：Sessions.cs
// 文件功能描述：sessions管理类
//
// 
// 创建标识：20011-11-02 
//
// 修改标识：
// 修改描述：
//
//
//----------------------------------------------------------------*/

using WebHelper.SessionHandler;
using System.Web;

namespace WebPlatform.FiltersAndSession
{
    /// <summary>
    /// sessions管理类
    /// </summary>
    public class Sessions
    {

        public ISessionHandler ISHandler { get; set; }


        public const string SESSION_KEY = "WEBMANAGER_USER";
        public const string ARTICLEPARTITION_SESSION_KEY = "ARTICLEPARTITION_SESSION_KEY";


        /// <summary>
        /// 用户会话信息
        /// </summary>
        public UserSession User
        {
            get
            {
                return ISHandler.GetSession<UserSession>(SESSION_KEY);
            }
            set
            {
                ISHandler.CreateSession<UserSession>(SESSION_KEY, value, 0);
            }
        }


        /// <summary>
        /// 内容分类ID
        /// </summary>
        public string ArticlePartition
        {
            get
            {
                return ISHandler.GetSession<string>(ARTICLEPARTITION_SESSION_KEY);
            }
            set
            {
                ISHandler.CreateSession<string>(ARTICLEPARTITION_SESSION_KEY, value, 0);
            }
        }


        /// <summary>
        /// 获取用户会话信息
        /// </summary>
        /// <returns>用户会话信息</returns>
        public UserSession GetUser()
        {
            return ISHandler.GetSession<UserSession>(SESSION_KEY);
        }


        /// <summary>
        /// 保存用户会话信息
        /// </summary>
        /// <param name="userSession">用户会话信息</param>
        public void SetUser(UserSession userSession)
        {
            ISHandler.CreateSession<UserSession>(SESSION_KEY, userSession, 600);
        }


        /// <summary>
        /// 清除用户会话信息
        /// </summary>
        public void ClearUser()
        {
            ISHandler.ClearSession(SESSION_KEY);
        }


    }
}